package io.openim.android.ouicore.im;


import android.app.Application;

import io.openim.android.ouicore.base.BaseApp;
import io.openim.android.ouicore.utils.Constants;
import io.openim.android.ouicore.utils.L;
import io.openim.android.sdk.OpenIMClient;
import io.openim.android.sdk.models.InitConfig;

public class IM {
    /**
     * 这段代码主要进行IM（即时通讯）的初始化配置和初始化SDK的操作。
     * 首先创建了一个InitConfig对象initConfig，通过传入API URL、WebSocket URL和存储目录进行初始化。
     * 其中，API URL和WebSocket URL通过调用Constants类的getImApiUrl()和getImWsUrl()方法获取，
     * 存储目录通过调用getStorageDir()方法获取。
     * 然后，设置initConfig对象的属性，将isLogStandardOutput设置为true，表示将日志输出到标准输出；
     * 将logLevel设置为5，表示日志级别为5。
     * 接下来，通过调用OpenIMClient.getInstance().initSDK(app, initConfig,
     * IMEvent.getInstance().connListener)方法进行SDK的初始化。其中，app为应用程序上下文对象，
     * initConfig为初始化配置对象，IMEvent.getInstance().connListener为连接监听器。
     * 最后，调用IMEvent.getInstance().init()方法进行事件监听器的初始化。
     * @param app
     */
    public static void initSdk(Application app) {
        L.e("App", "---IM--initSdk");
        InitConfig initConfig = new InitConfig(Constants.getImApiUrl(),
            Constants.getImWsUrl(), getStorageDir());
        initConfig.isLogStandardOutput = true;
        initConfig.logLevel=5;

        ///IM 初始化
        OpenIMClient.getInstance().initSDK(app,
            initConfig, IMEvent.getInstance().connListener);

        IMEvent.getInstance().init();
    }

    //存储路径
    public static String getStorageDir() {
        return BaseApp.inst().getFilesDir().getAbsolutePath();
    }
}
